/* 
 * File:   Triple.h
 * Author: marko
 *
 * Created on March 7, 2015, 6:45 PM
 */

#ifndef __TRIPLE_H__
#define	__TRIPLE_H__

namespace core {
    namespace util {

        template<typename T> class Triple : public Pair<T> {
        private:
            T third;
        protected:
        public:

            Triple() {
            }

            Triple(T first, T second, T third) : Pair<T>(first, second) {
                this->third = third;
            }

            Triple(const Triple& other) : Pair<T>(other.first, other.second) {
                third = other.third;
            }

            virtual ~Triple() {
            }

            T getThird() {
                return third;
            }

            const T& getThird() const {
                return third;
            }
        };
    }
}

#endif	/* TRIPLE_H */

